TABLE OF CONTENTS
baseclass/--background--
baseclass/BASE_ADDCONDITIONAL
baseclass/BASE_ADDHOOK
baseclass/BASE_ADDMAP
baseclass/BASE_ADDMETHOD
baseclass/BASE_CHECKLOOP
baseclass/BASE_CLEARLOOP
baseclass/BASE_DRAGACTIVE
baseclass/BASE_DRAGGING
baseclass/BASE_DRAGINACTIVE
baseclass/BASE_DRAGQUERY
baseclass/BASE_DRAGUPDATE
baseclass/BASE_DROPPED
baseclass/BASE_FINDRAWKEY
baseclass/BASE_FREEDRAGOBJECT
baseclass/BASE_GETDRAGOBJECT
baseclass/BASE_LEFTEXT
baseclass/BASE_RELAYOUT
baseclass/BASE_REMCONDITIONAL
baseclass/BASE_REMHOOK
baseclass/BASE_REMMAP
baseclass/BASE_REMMETHOD
baseclass/BASE_SETLOOP
baseclass/BASE_SHOWHELP
baseclass/BT_BottomOffset
baseclass/BT_Buffer
baseclass/BT_DragObject
baseclass/BT_DragQualifier
baseclass/BT_DragThreshold
baseclass/BT_DropObject
baseclass/BT_HelpFile
baseclass/BT_HelpHook
baseclass/BT_HelpLine
baseclass/BT_HelpNode
baseclass/BT_HelpText
baseclass/BT_HelpTextID
baseclass/BT_HitBox
baseclass/BT_Inhibit
baseclass/BT_InnerBox
baseclass/BT_Key
baseclass/BT_LabelClick
baseclass/BT_LabelObject/BT_FrameObject
baseclass/BT_LeftOffset
baseclass/BT_MouseActivation
baseclass/BT_NoRecessed
baseclass/BT_OuterBox
baseclass/BT_PostRenderHighestClass
baseclass/BT_Qualifier
baseclass/BT_RawKey
baseclass/BT_RightOffset
baseclass/BT_TextAttr
baseclass/BT_ToolTip
baseclass/BT_ToolTipID
baseclass/BT_TopOffset
baseclass/GM_GOACTIVE
baseclass/GM_GOINACTIVE
baseclass/GM_HITTEST
baseclass/GM_RENDER
baseclass/OM_NOTIFY
baseclass/OM_UPDATE
top baseclass/--background--
NAME
Class: baseclass
Superclass: GADGETCLASS
Include File:
FUNCTION
This is the most important gadget class in BGUI. It is the superclass
of almost all the other BGUI gadget classes at one point or another.
It will take care of the following things for it's subclasses:
o Notification
o Frames
o Labels
o Online-help.
o Basic Drag and Drop support.
If you plan on writing a gadget class for BGUI then always sub-class
it from this class. That way you automatically inherit the above
mentioned features.
NOTE
The methods and attributes described in this file are also valid for
all other BGUI gadget classes subclassed from this class unless
documented otherwise.
top baseclass/BASE_ADDCONDITIONAL
NAME
BASE_ADDCONDITIONAL -- Add an object for conditional notification.
SYNOPSIS
err = DoMethod( obj, CM_ADDCONDITIONAL, target, ctag, ttag, ftag );
ULONG err;
Object *target;
struct TagItem ctag;
struct TagItem ttag;
struct TagItem ftag;
FUNCTION
To add an object to this object's conditional notification list. Conditional
notification is a simple "if ctag = true then set ttag else set ftag" style
of notification.
INPUTS
target - A pointer to the object to add.
ctag - A struct TagItem telling the attribute and the value of the
attribute data to make the condition TRUE.
ttag - A struct TagItem containing the attribute and attribute
data which is set on the target when 'ctag' is TRUE.
ftag - A struct TagItem containing the attribute and attribute
data which is set on the target when 'ctag' is FALSE.
RESULT
err - TRUE for success, FALSE for failure.
EXAMPLE
Object *cycle, *string;
/*
* This will enable the string object when the
* CYC_Active attribute of the cycle object is
* 0. When the CYC_Active attribute is not 0
* the string object is disabled.
*/
DoMethod( cycle, BASE_ADDCONDITIONAL, string,
CYC_Active, 0,
GA_Disabled, FALSE,
GA_Disabled, TRUE );
SEE ALSO
BASE_REMCONDITIONAL
top baseclass/BASE_ADDHOOK
NAME
BASE_ADDHOOK -- Add an object for hook notification.
SYNOPSIS
err = DoMethod( obj, BASE_ADDHOOK, hook );
ULONG err;
struct Hook *hook;
FUNCTION
To add a hook to this object's hook notification list. Every time a
notification event occurs the hook is called with the following parameters:
rc = hookFunc( hook, obj, update );
D0 A0 A2 A1
ULONG rc;
struct Hook *hook;
Object *obj;
struct opUpdate *update;
hook - A pointer to the hook structure.
obj - This is a pointer to the object doing the notification.
update - This is a pointer to an opUpdate structure from which you can
extract data like the visual environment and the attributes which
caused the notification.
rc - Your hook routine must return non-zero when the notification
caused a change of some sort and zero if not.
INPUTS
hook - A pointer to the hook structure to add.
RESULT
err - TRUE for success, FALSE for failure.
EXAMPLE
/*
* Stupid display beeping hook.
*/
__saveds __asm ULONG beep( register __a0 struct Hook *hook,
register __a2 Object *obj,
register __a1 struct opUpdate *opu ) {
/*
* Only final messages.
*/
if ( ! ( opu->opu_Flags & OPUF_INTERIM )) {
DisplayBeep(0);
return( 1 );
}
return( 0 );
}
struct Hook beep_hook = { NULL,NULL,(HOOKFUNC)beep,NULL,NULL };
/*
* Make the button beep when released.
*/
DoMethod( button, BASE_ADDHOOK, &beep_hook );
SEE ALSO
BASE_REMHOOK
top baseclass/BASE_ADDMAP
NAME
BASE_ADDMAP -- Add an object for maplist notification.
SYNOPSIS
err = DoMethod( obj, BASE_ADDMAP, target, maplist );
ULONG err;
Object *target;
struct TagItem *maplist;
FUNCTION
To add an object to this object's maplist notification list. Maplist
notification is similar to the notification performed by the system "icclass"
and ICA_TARGET notification.
INPUTS
target - A pointer to the object to add.
maplist - This can point to an array of TagItem structures containing a set
of attributes to map. This may also be NULL in which case no
mapping is done.
RESULT
err - TRUE for succes, FALSE for failure.
EXAMPLE
/*
* This map-list will convert the SLIDER_Level attribute
* to a INDIC_Level attribute before the attributes are
* passed to the 'indicator' object.
*/
struct TagItem map[] = {
SLIDER_Level, INDIC_Level,
TAG_END
};
DoMethod( slider, BASE_ADDMAP, indicator, map );
SEE ALSO
BASE_REMMAP
top baseclass/BASE_ADDMETHOD
NAME
BASE_ADDMETHOD -- Add an object for method notification.
SYNOPSIS
err = DoMethod( obj, BASE_ADDMETHOD, target, flags, size, id, ... );
ULONG err;
Object *target;
ULONG flags;
ULONG size;
ULONG id;
FUNCTION
To add an object to this object's method notification list. Method
notification allows you to send complete methods to another object when a
notification event occures.
Please note that most notification will occur on the input.device's task.
This means that the called method must not take too long to return and
generally should not do anything a normal input handler or task based code
should not do.
INPUTS
target - A pointer to the object to add.
flags - Any of the follwoing flags:
BAMF_NO_GINFO
Normally a pointer to a GadgetInfo structure is inserted in
the method to send. When this flag is set this will not be
done. Please note that when a GadgetInfo is placed it is done
as follows:
OM_NEW, OM_SET, OM_UPDATE, OM_NOTIFY
If the method to send is any of these the GadgetInfo is
placed in the third long word of the method. All other
methods will get the GadgetInfo in the second long word.
This behaviour is the same as with the DoGadgetMethodA()
routine from intuition.
BAMF_NO_INTERIM
When set the method will not be sent on interim notification
events.
size - The size in long-words _including_ the method ID of the method
to send. This information is needed because a copy of the method
to send is made in an internal buffer.
id - The method ID of the method to send. This field can be followed
by the method specific data.
RESULT
err - TRUE for succes, FALSE for failure.
EXAMPLE
/*
* When notification occures 'obj1' will send the
* LVM_ADDSINGLE method to 'obj2'. The method will
* only be sent on final notification and will include
* a pointer to a GadgetInfo structure.
*/
DoMethod( obj1, BASE_ADDMETHOD, obj2, BAMF_NO_INTERIM, 5,
LVM_ADDSINGLE, NULL, "new", LVAP_TAIL, 0 );
SEE ALSO
BASE_REMMETHOD
top baseclass/BASE_CHECKLOOP
NAME
BASE_CHECKLOOP -- Private!
top baseclass/BASE_CLEARLOOP
NAME
BASE_CLEARLOOP -- Private!
top baseclass/BASE_DRAGACTIVE
NAME
BASE_DRAGACTIVE -- Tell an object to become active.
** V40 **
SYNOPSIS
DoMethod( obj, BASE_DRAGACTIVE, gi, source );
struct GadgetInfo *gi;
Object *source;
FUNCTION
When the object accepted to become the drag object's target this method is
called. It tells the object that it has become the active drop object by
sending this method.
When this method is called the object should make some visual changes to
itself to let the user know that it will accept a drop from the dragged
object. By default the baseclass will render a dotted box around the hit-box
of the object.
When you are not satisfied with this look or you simply need another visual
confirmation your class should overide the baseclass and do it itself.
INPUTS
gi - A pointer to the GadgetInfo structure.
source - A pointer to the object making this abject active.
RESULT
The object should make it visually obvious it has become the active drop
object. A return code is not defined.
SEE ALSO
BASE_DRAGQUERY, BASE_DRAGUPDATE, BASE_DRAGINACTIVE,
The DragNDrop demos.
top baseclass/BASE_DRAGGING
NAME
BASE_DRAGGING -- Input handling method for DragNDrop.
** V40 **
SYNOPSIS
rc = DoMethodA( obj, gpi );
ULONG rc;
struct gpInput *gpi;
FUNCTION
To enable the baseclass to inform its subclasses when it is dragging an
object around. I had to implement a special method which basically is the
same as the normal GM_HANDLEINPUT method supplied by the system.
Because I had to have the option to tell the subclasses what to do I could
not use the GM_HANDLEINPUT method for compatibility reasons. This is where
this method comes in.
When you write a class which uses Drag and Drop as an option the first thing
you must do in your GM_HANDLEINPUT routine is call this method. Depending on
what this method returns you continue processing the input or not.
This method uses the same structure as the GM_HANDLEINPUT method does
(struct gpInput * ).
INPUTS
gpi - A pointer to a gpInput structure. Please note that the MethodID
field must be set to BASE_DRAGGING (see example).
RESULT
rc - Any of the following return codes:
BDR_NONE
When this is returned the baseclass did not do anything with the
message and you should process it yourself like you would normally.
BDR_DRAGPREPARE
This result tells you to prepare for the fact that the baseclass is
going to take over the input handling. For example a draggable
button might deselect itself before the dragging starts.
BDR_DRAGGING
When this is returned it means that the baseclass is moving the
object around. You should do nothing except for returning
GMR_MEACTIVE. Do not handle the input event.
BDR_DROP
This return code means that the object has been dropped on a
droppable object. Usually this means that you stop input processing
and return GMR_NOREUSE.
BDR_CANCEL
This return code means that either the drag has been cancelled or
the user dropped the object somewhere outside a droppable object.
Usually this means you return GMR_NOREUSE.
EXAMPLE
/*
* A simple example of a drag prepared
* GM_HANDLEINPUT routine could be this:
*/
ULONG handle_input( cl, obj, gpi )
Class *cl;
Object *obj;
struct gpInput *gpi;
{
struct gpInput copy = *gpi;
ULONG rc = GMR_MEACTIVE;
copy.MethodID = BASE_DRAGGING;
switch ( DoMethodA( obj, ( Msg )© )) {
case BDR_NONE:
/* Process input like ususal. */
break;
case BDR_DROP:
case BDR_CANCEL:
rc = GMR_NOREUSE;
break;
case BDR_DRAGPREPARE:
/* Unselect button or whatever you
need to do before dragging
starts. */
break;
}
return( rc );
}
SEE ALSO
The DragNDrop demos.
top baseclass/BASE_DRAGINACTIVE
NAME
BASE_DRAGINACTIVE -- Deactivate drop target.
** V40 **
SYNOPSIS
DoMethod( obj, BASE_DRAGINACTIVE, gi, source );
struct GadgetInfo *gi;
Object *source;
FUNCTION
When the object is no longer the active target of the dragged object this
method is called.
In this method the visual changes made in the BASE_DRAGACTIVE method must be
undone.
By default the baseclass simply re-renders the object. If you are not content
with this behaviour your class should override the baseclass and do it
itself.
INPUTS
gi - A pointer to the GadgetInfo structure.
source - A pointer to the object deactivating you.
RESULT
The visual changes made in BASE_DRAGACTIVE should be undone. No return code
has been defined for this method.
SEE ALSO
BASE_DRAGQUERY, BASE_DRAGACTIVE, BASE_DRAGUPDATE,
The DragNDrop demos.
top baseclass/BASE_DRAGQUERY
NAME
BASE_DRAGQUERY -- Query if an object is droppable.
** V40 **
SYNOPSIS
rc = DoMethod( obj, BASE_DRAGQUERY, gi, source, xy );
ULONG rc;
struct GadgetInfo *gi;
Object *source;
LONG xy;
FUNCTION
This method is sent to the dropable object when another object is dragged
over it. It is used to find out whether or not the object is prepared or
willing to become the active target of the dragged object.
INPUTS
gi - A pointer to the drop-object it's GadgetInfo.
source - A pointer to the object wanting to know if this object is willing
to become the active drop target.
xy - A 32 bit integer containing the mouse coordinates relative to the
top-left of the _HitBox_ from this object. With this information
you can opt to become active only when the mouse is at a certan
position. The ListviewClass uses this to only become the active
drop target if the mouse is in the list area. The upper 16 bits
contain the x offset and the lower 16 bits the y offset.
RESULT
rc - When this object is ready and willing to accept data from the
inquiring object it should return BQR_ACCEPT. If not it should return
BQR_REJECT.
NOTE
The baseclass defaults to BQR_ACCEPT for _all_ drag objects which are
dragged uppon its HitBox. This means that to implement a usable droppable
object you must write a subclass which overides this method to make a more
resonable selection.
SEE ALSO
BASE_DRAGACTIVE, BASE_DRAGINACTIVE, The DragNDrop demos.
top baseclass/BASE_DRAGUPDATE
NAME
BASE_DRAGUPDATE -- Update drag position.
** V40 **
SYNOPSIS
rc = DoMethod( obj, BASE_DRAGUPDATE, gi, source, xy );
ULONG rc;
struct GadgetInfo *gi;
Object *source;
LONG xy;
FUNCTION
When the object has become the active drop object it will get continues
updates from the dragged object about the mouse pointer position relative to
the top-left corner of it's hitbox. The updates are sent on each timer tick.
The update messages can be very usefull if your class needs to know the place
where the object is dropped. For instance the ListviewClass uses these
message to update the visuals to make clear where the dragged entry or
entries will be dropped.
INPUTS
gi - A pointer to the GadgetInfo structure.
source - A pointer to the object which sends the updates.
xy - A 32 bit integer containing the mouse position relative to the
top-left corner of the hitbox. The upper 16 bits contain the x
offset and the lower 16 bits the y offset.
RESULT
rc - One of the following return codes:
BUR_CONTINUE
To signal the dragged object that this object wants to remain the
active target.
BUR_ABORT
To signal the dragged object that this object no longer wants to be
the active target.
NOTE
The base class will return BUR_CONTINUE as long as the mouse is still
located inside the object it's hitbox. When the mouse has been moved outside
the object hitbox the baseclass will return BUR_ABORT.
SEE ALSO
BASE_DRAGACTIVE, BASE_DRAGINACTIVE, The DragNDrop demos.
top baseclass/BASE_DROPPED
NAME
BASE_DROPPED -- The object has been dropped.
** V40 **
SYNOPSIS
DoMethod( obj, BASE_DROPPED, gi, source, win, req );
struct GadgetInfo *gi;
Object *source;
struct Window *win;
struct Requester *req;
FUNCTION
This method is called when the user has dropped the dragged object on this
object. Now this object may get the data it needs from the object and act
accordingly.
INPUTS
gi - A pointer to the GadgetInfo.
source - A pointer to the object which has been dropped.
win - A pointer to the window on which the dropped object is located.
With this pointer you can use BGUI_DoGadgetMethod() to make
visual changes to the dropped object if necessary.
req - A pointer to the requester on which the dropped object is
located. Currently BGUI does not support requesters but for
future compatibility you should pass this pointer along with any
BGUI_DoGadgetMethod() you make.
RESULT
The object should do whatever needs to be done with the dropped object. There
is no return code defined for this method.
NOTE
To enable a useful drag and drop object you should write a subclass which
will overide the baseclass and act on dropped objects. The baseclass simply
beep the display.
SEE ALSO
bgui.library/BGUI_DoGadgetMethod(), The DragNDrop demos.
top baseclass/BASE_FINDRAWKEY
NAME
BASE_FINDRAWKEY -- Match a rawkey to an object (or subobjects).
** V41 **
SYNOPSIS
ob = DoMethod( obj, BASE_FINDRAWKEY, rawkey );
Object *ob;
UBYTE rawkey;
FUNCTION
To see if an object has the specified rawkey as its key equivalent. If the
object is a grouping or paging object, all members will checked against the
specified rawkey. A pointer to an object that matches the rawkey is returned,
or NULL if there is no match.
This method is called by the windowclass during input handling, and is mainly
useful to class writers. If you implement a class that contains multiple
objects that can have independent key equivalents, you will need to define
this method for your class, and iterate through each sub-object in your
object, calling BASE_RAWKEY for each one. If you get a non-NULL return value,
return it. If no match is found, return NULL.
INPUTS
rawkey - The rawkey to match.
RESULT
ob - Object with the specified rawkey, or NULL if none.
EXAMPLE
UBYTE k;
Object *group;
/*
* This would show what object is attached to each function key in the group.
*/
for (k = 0x50; k <= 0x59; k++)
{
printf("F%ld: %08lx\n", k - 0x50 + 1, DoMethod(group, BASE_FINDRAWKEY, k));
};
SEE ALSO
top baseclass/BASE_FREEDRAGOBJECT
NAME
BASE_FREEDRAGOBJECT -- Delete the bitmap draggged around.
** V40 **
SYNOPSIS
DoMethod( obj, BASE_FREEDRAGOBJECT, bm );
struct BitMap *bm;
FUNCTION
This method is called to free the BitMap created with the BASE_GETDRAGOBJECT
method.
INPUTS
bm - A pointer to the BitMap structure as returned by the BASE_GETDRAGOBJECT
method.
RESULT
The bitmap must be deallocated. No return code defined.
NOTE
When your class overiddes the BASE_GETDRAGOBJECT method it should also
override this method.
SEE ALSO
BASE_GETDRAGOBJECT
top baseclass/BASE_GETDRAGOBJECT
NAME
BASE_GETDRAGOBJECT -- Obtain bitmap to drag.
** V40 **
SYNOPSIS
bm = DoMethod( obj, BASE_GETDRAGOBJECT, gi, ibox );
struct BitMap *bm;
struct GadgetInfo *gi;
struct IBox *ibox;
FUNCTION
This method is sent to the object when this class needs to obtain a bitmap
containing the image to drag accross the screen.
INPUTS
gi - A pointer to the GadgetInfo structure.
ibox - A pointer to an IBox structure in which you should store the bounds
of the bitmap you create. The Left and Top fields are used by the
baseclass to buffer the screen information which is going to be
covered by the dragged object. The Width and Height should be the
width and height of the bitmap.
RESULT
bm - A pointer to the BitMap structure containing the image to drag around
or NULL upon failure.
NOTE
By default the baseclass will return a pointer to a BitMap containing the
Hitbox imagery of the object. If you want to change this your class should
override the baseclass and supply its own bitmap. The PaletteClass example
does this.
SEE ALSO
BASE_FREEDRAGOBJECT, PaletteClass demos.
top baseclass/BASE_LEFTEXT
NAME
BASE_LEFTEXT -- Private!
top baseclass/BASE_RELAYOUT
NAME
BASE_RELAYOUT -- Force an object to layout again.
SYNOPSIS
BGUI_DoGadgetMethod( obj, bmRelayout);
Object *obj;
struct bmRelayout *bmRelayout;
FUNCTION
To force a object in an opened window to layout again. If the object
does not fit in the current group it may force all the parent groups to
resize and eventually the window on which it is displayed.
INPUTS
obj - A pointer to the object which is to be layed out again.
bmRelayout - A pointer to a BASE_RELAYOUT method structure.
RESULT
Returns TRUE if the window did not need to resize or if the after
resizing it still fits on the screen.
SEE ALSO
top baseclass/BASE_REMCONDITIONAL
NAME
BASE_REMCONDITIONAL -- Remove an conditional notification object.
SYNOPSIS
err = DoMethod( obj, BASE_REMCONDITIONAL, target );
ULONG err;
Object *target;
FUNCTION
To remove an object from the conditional notification list which was
previously added with BASE_ADDCONDITIONAL.
INPUTS
target - A pointer to the object to remove which was previously added with
the BASE_ADDCONDITIONAL method.
RESULT
err - TRUE for success, FALSE for failure.
EXAMPLE
/*
* Remove 'obj2' from 'obj1' its conditional
* notification list.
*/
Domethod( obj1, BASE_REMCONDITIONAL, obj2 );
SEE ALSO
BASE_ADDCONDITIONAL
top baseclass/BASE_REMHOOK
NAME
BASE_REMHOOK -- Remove a notification hook.
SYNOPSIS
err = DoMethod( obj, BASE_REMHOOK, hook );
ULONG err;
struct Hook *hook;
FUNCTION
To remove a hook from the hook notification list which was previously added
with BASE_ADDHOOK.
INPUTS
hook - A pointer to the hook to remove which was previously added with the
BASE_ADDHOOK method.
RESULT
err - TRUE for success, FALSE for failure.
EXAMPLE
/*
* Remove 'hook' from 'obj' its hook
* notification list.
*/
Domethod( obj, BASE_REMHOOK, hook );
SEE ALSO
BASE_ADDHOOK
top baseclass/BASE_REMMAP
NAME
BASE_REMMAP -- Remove a maplist notification object.
SYNOPSIS
err = DoMethod( obj, BASE_REMMAP, target );
ULONG err;
Object *target;
FUNCTION
To remove an object from the maplist notification list which was previously
added with BASE_ADDMAP.
INPUTS
target - A pointer to the object to remove which was previously added with
the BASE_ADDMAP method.
RESULT
err - TRUE for success, FALSE for failure.
EXAMPLE
/*
* Remove 'obj2' from 'obj1' its maplist
* notification list.
*/
Domethod( obj1, BASE_REMMAP, obj2 );
SEE ALSO
BASE_ADDMAP
top baseclass/BASE_REMMETHOD
NAME
BASE_REMMETHOD -- Remove a method notification object.
SYNOPSIS
err = DoMethod( obj, BASE_REMMETHOD, target );
ULONG err;
Object *target;
FUNCTION
To remove an object from the method notification list which was previously
added with BASE_ADDMETHOD.
INPUTS
target - A pointer to the object to remove which was previously
added with the BASE_ADDMETHOD method.
RESULT
err - TRUE for success, FALSE for failure.
EXAMPLE
/*
* Remove 'obj2' from 'obj1' its method
* notification list.
*/
Domethod( obj1, BASE_REMMETHOD, obj2 );
SEE ALSO
BASE_ADDMETHOD
top baseclass/BASE_SETLOOP
NAME
BASE_SETLOOP -- Private!
top baseclass/BASE_SHOWHELP
NAME
BASE_SHOWHELP -- Private!
top baseclass/BT_BottomOffset
NAME
BT_BottomOffset -- ( ULONG )
FUNCTION
This is a gap just inside the enclosing frame for the gadget,
measured in pixels.
The default value of 0 means that the outer frame encloses the
gadget "tightly", with no gap in between.
Values higher than zero will give you a gap.
eg. setting this to 10 will mean there is a 10 pixel high gap
between the bottom of the frame and the InnerBox of your
gadget.
DEFAULT
0. (no gap)
APPLICABILITY
(ISG).
SEE ALSO
BT_LeftOffset, BT_RightOffset, BT_TopOffset
top baseclass/BT_Buffer
NAME
BT_Buffer -- ( ULONG )
** V41.6 **
FUNCTION
To be documented.
DEFAULT
To be documented.
APPLICABILITY
(ISG).
SEE ALSO
top baseclass/BT_DragObject
NAME
BT_DragObject -- ( BOOL )
** V40 **
FUNCTION
To enable the object to be dragged around the screen and dropped on other
objects by the user.
DEFAULT
FALSE.
APPLICABILITY
(ISG).
SEE ALSO
BT_DropObject, BT_DragThreshold, BT_DragQualifier
top baseclass/BT_DragQualifier
NAME
BT_DragQualifier -- ( UWORD )
** V40 **
FUNCTION
To specify the qualifier of the input event that must be present to allow
dragging. For example you might choose to support the dragging of an object
only if the left alt key is pressed while selecting the object. A simple
BT_DragQualifier, IEQUALIFIER_LALT
will do this.
Have a look at the "devices/inputevent.[h][i]" file for the available
possibilities.
DEFAULT
~0 (no qualifier).
APPLICABILITY
(ISG).
SEE ALSO
BT_DragObject, BT_DropObject, BT_DragThreshold, devices/inputevent.h
top baseclass/BT_DragThreshold
NAME
BT_DragThreshold -- ( ULONG )
** V40 **
FUNCTION
To set the number of pixels that the mouse must be moved before the object is
actually dragged.
DEFAULT
3.
APPLICABILITY
(ISG).
SEE ALSO
BT_DragObject, BT_DropObject, BT_DragQualifier
top baseclass/BT_DropObject
NAME
BT_DropObject -- ( BOOL )
** V40 **
FUNCTION
To enable the object to receive messages from a draggable object.
DEFAULT
FALSE.
APPLICABILITY
(ISG).
SEE ALSO
BT_DragObject, BT_DragThreshold, BT_DragQualifier
top baseclass/BT_HelpFile
NAME
BT_HelpFile -- ( STRPTR )
FUNCTION
Set the name of the file to be displayed when a help-request for the object
arives. Please note that the full path-name must be given.
DEFAULT
NULL.
APPLICABILITY
(ISG).
SEE ALSO
BT_HelpNode, BT_HelpLine
top baseclass/BT_HelpHook
NAME
BT_HelpHook -- ( ULONG )
** V 41.7 **
FUNCTION
To be documented.
DEFAULT
To be documented.
APPLICABILITY
(ISG).
SEE ALSO
top baseclass/BT_HelpLine
NAME
BT_HelpLine - ( ULONG )
FUNCTION
Set the line number from which the file is displayed. This may be useful if
the help-file is not an AmigaGuide file.
DEFAULT
0.
APPLICABILITY
(ISG).
SEE ALSO
BT_HelpFile, BT_HelpNode
top baseclass/BT_HelpNode
NAME
BT_HelpNode -- ( STRPTR )
FUNCTION
Set the name of the node which is diplayed in the help window.
DEFAULT
NULL.
APPLICABILITY
(ISG).
SEE ALSO
BT_HelpFile, BT_HelpLine
top baseclass/BT_HelpText
NAME
BT_HelpText -- ( STRPTR)
FUNCTION
To setup a text which will be displayed if the help-key is pressed while the
mouse pointer is located above the object. This attribute should be used to
attach small on-line help to the object. The text you specify will be shown
in a small BGUI_RequestA() type of requester so you must make sure that
everything fit's nicely on a 600x200 screen.
The specified text may contain any of the infoclass command sequences.
This attribute overides the BT_HelpFile, BT_HelpNode and BT_HelpLine
attributes. Also note that the requester which pops up is synchronous.
DEFAULT
NULL.
APPLICABILITY
(ISG).
SEE ALSO
BT_HelpFile, BT_HelpNode, BT_HelpLine, infoclass.doc/INFO_TextFormat,
bgui.library/BGUI_RequestA()
top baseclass/BT_HelpTextID
NAME
BT_HelpTextID -- ( ULONG )
** V41 **
FUNCTION
Set or get the ID for BT_HelpText. BASE_LOCALIZE uses this to set
BT_HelpText.
DEFAULT
0.
APPLICABILITY
(ISG).
SEE ALSO
BT_HelpText, baseclass.doc/BASE_LOCALIZE
top baseclass/BT_HitBox
NAME
BT_HitBox - ( struct IBox * )
FUNCTION
Get the hitbox bounds of the gadget object. This attribute is normally only
useful for class writers although there might be cases in which this
attribute may be useful to application programmers to.
Getting this attribute will pass you a pointer to a _READ ONLY_ struct IBox
in which the bounds of the object are located.
Please note that the contents of the returned IBox structure is only valid
_after_ you let this class render itself.
DEFAULT
None.
APPLICABILITY
(G).
EXAMPLE
__saveds __asm ULONG
dispatcher ( __a0 Class *cl, __A2 Object *obj, __A1 Msg msg )
{
struct IBox *domain;
switch ( msg->MethodID ) {
...
case GM_RENDER:
/*
** First let the superclass render.
**/
if ( ! DoSuperMethodA( cl, obj, msg ))
return( 0L );
/*
** Now you can obtain the object
** it's hitbox bounds.
**/
DoSuperMethod( cl, obj, OM_GET,
BT_HitBox, &domain );
...
break;
}
}
top baseclass/BT_Inhibit
NAME
BT_Inhibit -- ( BOOL )
** V39 **
FUNCTION
This attribute has been made public for people needing to know whether or not
an object is located on a visible page. This attribute is read only and will
read TRUE when an object is located on an invisible page and FALSE if the
object is located on a visible page.
DEFAULT
FALSE.
APPLICABILITY
(G).
top baseclass/BT_InnerBox
NAME
BT_InnerBox -- ( ULONG )
FUNCTION
To be documented.
DEFAULT
To be documented.
APPLICABILITY
(G).
SEE ALSO
BT_OuterBox
top baseclass/BT_Key
NAME
BT_Key -- ( STRPTR )
** V41 **
FUNCTION
To attach a key equivalent to an object. As of V41.3, events are processed as
IDCMP_VANILLAKEY, so any key may be attached, including characters that
require qualifiers and deadkeys.
It is usually not desirable to specify a qualifier with BT_Qualifier, but it
is possible. This could be useful to distinguish between a a number pressed
on the main keyboard and one on the numeric keypad, for example.
DEFAULT
NULL.
APPLICABILITY
(ISG).
SEE ALSO
BT_Qualifier, BT_RawKey, BASE_FINDRAWKEY, BASE_KEYLABEL,
windowclass.doc/WINDOW_AutoKeyLabel
top baseclass/BT_LabelClick
NAME
BT_LabelClick -- ( BOOL )
FUNCTION
To tell the baseclass to also consider clicking inside the gadget
label as a hit.
DEFAULT
FALSE.
APPLICABILITY
(I).
SEE ALSO
GM_HITTEST
top baseclass/BT_LabelObject/BT_FrameObject
NAME
BT_LabelObject, BT_FrameObject -- ( Object * )
FUNCTION
Set or get the frame/label object to use. Normally only class writers use
these attributes. You can use them to obtain a pointer to the label/frame
object or to erase/change the label/frame object. If, for example, your class
uses its own custom rendering you can dispose of the baseclass frame by
setting it to NULL like this:
SetAttrs( object, FRM_FrameObject, NULL, TAG_END );
DEFAULT
The frame/label build from the attributes passed to the object at create
time.
APPLICABILITY
(SG).
SEE ALSO
intuition.library/SetAttrs()
top baseclass/BT_LeftOffset
NAME
BT_LeftOffset -- ( ULONG )
** V ? **
FUNCTION
This is a gap just inside the enclosing frame for the gadget,
measured in pixels.
The default value of 0 means that the outer frame encloses the
gadget "tightly", with no gap in between.
Values higher than zero will give you a gap.
eg. setting this to 10 will mean there is a 10 pixel wide gap
between the left of the frame and the InnerBox of your
gadget.
DEFAULT
0. (no gap)
APPLICABILITY
(ISG).
SEE ALSO
BT_RightOffset, BT_TopOffset, BT_BottomOffset
top baseclass/BT_MouseActivation
NAME
BT_MouseActivation -- ( ULONG )
** V41.5 **
FUNCTION
This flag/attribute allows the gadget to respond to right and middle mouse
buttons. By setting BT_MouseActivation to some combination of the following
flags, you can allow the gadget to hear mouse button clicks from any of the
buttons, left, middle, right.
The following values may be ORed together:
� MOUSEACT_RMB_ACTIVE
The right mouse button will activate the gadget
just like the left mouse button.
� MOUSEACT_RMB_REPORT
This is to make the right mouse button cause the
gadget ID to be reported in a notification event.
� MOUSEACT_MMB_ACTIVE same as above except for the middle mouse button.
� MOUSEACT_MMB_REPORT
BOOPSI gadgets are not supposed to handle right mouse events until the
gadget becomes active. However, if the window class gets right mouse
button events when the mouse is over a gadget with this attribute set, the
gadget is activated.
This way we can implement a context sensitive menu or another user interface
action being triggered by the the right or middle mouse button.
It is actually the Window class that makes use of this attribute, allowing
whatever mouse button events you are interested in through to your gadget.
BGUI Window class handles Intuition events for us.
To let this happen, the Window must be getting mouse events.
How do you specify that a Window should get mouse events?
You have to set IDCMP_MOUSEMOVE and IDCMP_MOUSEBUTTONS for the Window IDCMP
flags but BGUI sets that for you.
When does a Window not get mouse events?
- When the window is not active
- When the user pulls down an Intuition menu and the Window does not have
RMBTrap set.
NOTE
The left mouse button is most usually the "Select" button, and the right
mouse button the "Menu" button. This can be swapped, without physically
changing the mouse! The input events the gadget receives are
SELECTDOWN, SELECTUP, MENUDOWN, and MENUUP.
DEFAULT
0 (zero). (only activate on left mouse presses/releases)
APPLICABILITY
(ISG)
SEE ALSO
bgui.h for the definition of this attribute and the flags above.
top baseclass/BT_NoRecessed
NAME
BT_NoRecessed -- ( BOOL )
FUNCTION
To tell the baseclass not to recess the frame when the gadget object is
selected. The checkboxclass uses this attribute.
DEFAULT
FALSE.
APPLICABILITY
(S).
top baseclass/BT_OuterBox
NAME
BT_OuterBox -- ( ULONG )
** V 41.8 **
FUNCTION
To be documented.
DEFAULT
To be documented.
APPLICABILITY
(G).
SEE ALSO
BT_InnerBox
top baseclass/BT_PostRenderHighestClass
NAME
BT_PostRenderHighestClass -- ( ULONG )
FUNCTION
To be documented.
DEFAULT
To be documented.
APPLICABILITY
(G).
SEE ALSO
top baseclass/BT_Qualifier
NAME
BT_Qualifier -- ( UWORD )
** V41 **
FUNCTION
Set the key activation qualifier for the object. When the user presses a key,
the qualifier must match exactly for the object to be activated. Only
keyboard qualifiers are considered.
If you want the object to respond to either shift key, then set both
IEQUALIFIER_LSHIFT and IEQUALIFIER_RSHIFT, and the object will respond to
either one or both. You may do this with LALT and RALT as well.
A value of ~0 will cause qualifiers to be ignored.
DEFAULT
~0.
APPLICABILITY
(ISG).
SEE ALSO
BT_Key, BT_RawKey, BASE_FINDRAWKEY, BASE_KEYLABEL,
windowclass.doc/WINDOW_AutoKeyLabel
top baseclass/BT_RawKey
NAME
BT_RawKey -- ( UBYTE )
** V41 **
FUNCTION
To attach a key equivalent to an object. This must be a key-down event.
IDCMP_VANILLAKEY events take precedence, so use BT_Key unless you need a
function key, the HELP key, or the cursor keys. You may specify a qualifier
with BT_Qualifier.
Note: 0 is a valid rawkey. To remove the rawkey equivalent, set BT_RawKey to
(UBYTE)~0.
DEFAULT
~0.
APPLICABILITY
(ISG).
SEE ALSO
BT_Key, BT_Qualifier, BASE_FINDRAWKEY, BASE_KEYLABEL,
windowclass.doc/WINDOW_AutoKeyLabel
top baseclass/BT_RightOffset
NAME
BT_RightOffset -- ( ULONG )
** V ? **
FUNCTION
This is a gap just inside the enclosing frame for the gadget,
measured in pixels.
The default value of 0 means that the outer frame encloses the
gadget "tightly", with no gap in between.
Values higher than zero will give you a gap.
eg. setting this to 10 will mean there is a 10 pixel wide gap
between the right of the frame and the InnerBox of your
gadget.
DEFAULT
0. (no gap)
APPLICABILITY
(ISG).
SEE ALSO
BT_LeftOffset, BT_TopOffset, BT_BottomOffset
top baseclass/BT_TextAttr
NAME
BT_TextAttr -- ( struct TextAttr * )
FUNCTION
Set/Get the font which will be used by the frame and label of the class.
Class writers might want to intercept and copy this data before passing it
onto the superclass.
NOTE ** V39 **
Since V39 this attribute has been made settable at create time. When you
create an object with BT_TextAttr set the font you pass will be used
throughout the life of the object. Otherwise the font will be determined by
the one you set in the windowclass.
DEFAULT
NULL (Screen font).
APPLICABILITY
(ISG).
top baseclass/BT_ToolTip
NAME
BT_ToolTip -- ( UBYTE * )
** V40 **
FUNCTION
To set the tool tip text for this object. The tool tip is displayed when the
user holds the mouse still over the object for a specific amount of
INTUITICKS. The INTUITICKS occur about ten times a second.
ToolTips should be used on objects for which it is not immediately obvious
what it does. Like for instance the objects in graphical tool bars etc.
DEFAULT
NULL.
APPLICABILITY
(ISG).
top baseclass/BT_ToolTipID
NAME
BT_ToolTipID -- ( ULONG )
** V41 **
FUNCTION
Set or get the ID for BT_ToolTip. BASE_LOCALIZE uses this to set BT_ToolTip.
DEFAULT
0.
APPLICABILITY
(ISG).
SEE ALSO
BT_ToolTip, baseclass.doc/BASE_LOCALIZE
top baseclass/BT_TopOffset
NAME
BT_TopOffset -- ( ULONG )
** V ? **
FUNCTION
This is a gap just inside the enclosing frame for the gadget,
measured in pixels.
The default value of 0 means that the outer frame encloses the
gadget "tightly", with no gap in between.
Values higher than zero will give you a gap.
eg. setting this to 10 will mean there is a 10 pixel high gap
between the top of the frame and the InnerBox of your
gadget.
DEFAULT
0. (no gap)
APPLICABILITY
(ISG).
SEE ALSO
BT_LeftOffset, BT_RightOffset, BT_BottomOffset
top baseclass/GM_GOACTIVE
NAME
GM_GOACTIVE -- Tell the object to go active.
FUNCTION
This method will set up any required drag and drop buffers. When this method
returns GMR_NOREUSE it means that either drag operations are not supported
for this object or the available memory will not allow it.
When GMR_MEACTIVE is returned the drag and drop buffers are set up OK.
top baseclass/GM_GOINACTIVE
NAME
GM_GOINACTIVE -- Tell an object to deactivate.
FUNCTION
This method will clean up any drag and drop buffers which may have been
allocated.
top baseclass/GM_HITTEST
NAME
GM_HITTEST -- Check if the object was "hit".
FUNCTION
This method will return GMR_GADGETHIT when the object was clicked inside it's
hitbox area. It will also return GMR_GADGETHIT when the object was clicked
inside it label and the BT_LabelClick attribute of this object is set to
TRUE.
SEE ALSO
BT_LabelClick
top baseclass/GM_RENDER
NAME
GM_RENDER -- Render the object.
FUNCTION
If this message requests a complete re-rendering (I.E. GREDRAW_REDRAW) this
method will render the frame and label when available. On any other request
it will simply re-compute the gadget hitbox bounds. When this method returns
a non-NULL value you are also allowed to render. If this method returns NULL
then you may not render.
Your class _must_ also follow the same rules. If the superclass of your class
returns NULL you do not render and also return NULL. If the superclass of your
class returns a non-NULL value you should render and also return a non-NULL
value.
Your class must use the gpr_RPort field for _all_ rendering. This usually
points to a buffer rastport in which you render without it showing on screen.
This also means that if your class uses OM_SET on another object you must do
so without passing the gpr_GInfo field and re-render that object later in the
RastPort pointed to by the gpr_RPort field.
RastPort-Clipping is not allowed for BGUI objects. The reason for this
limitation is that all rendering occurs in a buffer rastport without a layer
attached to it. If your class absolutely needs clipping you must use the
WINDOW_NoBufferRP or PAGE_NoBufferRP on the window object or page object in
which the object is located.
top baseclass/OM_NOTIFY
NAME
OM_NOTIFY -- Notify attribute changes.
FUNCTION
This method will first execute all maplist, conditional, method and hook
notification. When that is done the method is passed onto GADGETCLASS for any
ICA_TARGET's that might still exist.
top baseclass/OM_UPDATE
NAME
OM_UPDATE -- Update attributes.
FUNCTION
This method fixes a bug in the system GADGETCLASS. Even though the BOOPSI
gadgetclass documentation states that the GA_ID attribute of a gadget object
cannot be changed by a OM_UPDATE message it still does. As this behaviour is
not correct the baseclass intercepts the GA_ID attribute before passing it on
to the GADGETCLASS. This way GA_ID will not be changable by a OM_UPDATE call.